WebHooks allow the merchant to configure one or more merchant specific end–points to be responded to by the Payment Broker and will be consumed by a merchant's custom service of their own design. The WebHooks are processed by posting a Base64 encoded JSON payload to the configured URL(s) as defined in the WebHooks.WebHook.Template field. The WebHooks URLs are processed after a successful or failed payment on the Payment Gateway. The template will contain one or more of the fields from payment gateway which are parametrised by enclosing them in hashes (#) . The parameterised fields are substituted by Payment Gateway with the actual values on post-back, and would allow your end-point to be notified of those values, so that you could update your order status with the outcome of the payment. See 4.4 Appendix D: Payment Gateway Response Codes
The following list of possible fields can be defined in the WebHook template:
# | Field (Case–Sensitive) |
Required MandatoryOptional |
Type | Length | Description |
---|---|---|---|---|---|
1. | Type ^ | M | String | Must be set to recurringpaymentcallback | |
2. | ControlKey | M | String |
Encrypted value used to check that the values posted back correspond to a valid Payment Gateway post–back for the TransactionStatusCallbackURL. It is constructed using a Hash of the Stamp/Session/Identifier encrypted with the merchant's encryption key). See 4.3. Appendix C: Control Key for details on how this value is generated. |
|
3. | Identifier | M | String | Value that uniquely identifies an order submitted for processing. | |
4. | MerchantReference | M | String | 20 | This is the unique value that is used by the Merchant to identify the transaction on his system. |
5. | Amount | M | Decimal | The purchase amount of the transaction. | |
6. | RequestIdentifier | M | String | 50 | Included by the merchant to uniquely identify the transaction on his system.. |
7. | TransactionReference | M | String | 21 |
The unique identifier of the transaction on the payment gateway. Will always contain a value in the case of a successful transaction. |
8. | ErrorDescription | M | String | 250 | The description of the error that has occurred. Can be empty. Will only contain value if there was an error. See 4.4 Appendix D: Payment Gateway Response Codes |
9. | ErrorCode | M | String | 3 |
Error code returned. "00" – the transaction was accepted and will be processed. Non–zero value otherwise. See 4.4 Appendix D: Payment Gateway Response Codes |
10. | BankResponseCode | M | String | See 4.5. Appendix E: Bank Response Codes. | |
11. | BankResponseDescription | M | String | 3 | See 4.5. Appendix E: Bank Response Codes. |
12. | TransactionStatus | M | String |
Indicates the current status of transaction. Valid values: |
|
13. | Currency | M | String | 3 |
Country currency. Supply the 3 character ISO currency code. Defaults to "ZAR". |
14. | SupplierID | M | String |
This is the VPG assigned merchant identifier. The SupplierID field value will be submitted as SupplierAlias which are synonymous. e.g. "VC Upfront Payments" Will be provided by VFS after merchant on-boarding. |
|
15. | Stamp | M | String | 38 |
Unique identifier passed by the merchant representing the instance of the transaction request. If no stamp is passed by the merchant no stamp is returned. |
16. | CustomerIdentifier | M | String | The unique id sent to the payment gateway if sent by the merchant. | |
17. | MerchantIdentifier | M | String | 38 | The GUID id of the merchant in the payment gateway. |
18. | MaskedCardNumber | M | String | The PAN (Card Number) of the customer's card used to make the payment masked with asterisk's to show only the last four–digits. | |
19. | RetrievalReferenceNumber | M | String | The reference that is used to track the transaction with the bank. |